export interface Blog {
  id: number;
  title: string;
  content: string;
  summary: string;
  author: string;
  createTime: string;
  updateTime: string;
  tags: string[];
  category: string;
  viewCount: number;
  status: 'draft' | 'published';
}

export interface User {
  id: number;
  username: string;
  avatar: string;
  email: string;
  token?: string;
}

export interface Comment {
  id: number;
  content: string;
  author: string;
  createTime: string;
  blogId: number;
  avatar?: string;
}

export interface LoginForm {
  username: string;
  password: string;
}

export interface RegisterForm extends LoginForm {
  email: string;
  confirmPassword: string;
}

export interface BlogQuery {
  page?: number;
  pageSize?: number;
  category?: string;
  tag?: string;
  search?: string;
}

export interface ApiResponse<T> {
  code: number;
  message: string;
  data: T;
}

export interface Banner {
  id: number
  title: string
  description: string
  image: string
  link?: string
}

export interface Profile {
  nickname: string
  avatar: string
  description: string
  postCount: number
  categoryCount: number
  tagCount: number
} 